#!/bin/bash
# Auto-SSL 快速启动脚本
# 一键部署SSL证书自动化配置工具

set -e

# 颜色定义
GREEN='\033[0;32m'
BLUE='\033[0;34m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
NC='\033[0m'

echo -e "${BLUE}[INFO]${NC} 开始部署 Auto-SSL..."

# 检查root权限
if [ "$EUID" -ne 0 ]; then
    echo -e "${RED}[ERROR]${NC} 请使用root权限运行"
    echo -e "${YELLOW}[INFO]${NC} 请使用: sudo bash quick-start.sh"
    exit 1
fi

# 下载并运行安装脚本
echo -e "${BLUE}[INFO]${NC} 下载安装脚本..."
curl -sSL https://gitee.com/tght1211/auto-ssl/raw/master/install.sh | bash

echo -e "${GREEN}[SUCCESS]${NC} Auto-SSL 部署完成！"
echo ""
echo -e "${YELLOW}现在您可以使用以下命令：${NC}"
echo -e "  ${GREEN}auto-ssl bt${NC}    # 宝塔面板用户"
echo -e "  ${GREEN}auto-ssl${NC}       # 通用Nginx用户"
echo ""
echo -e "${BLUE}[INFO]${NC} 开始配置您的第一个SSL证书..."

# 询问是否立即配置
echo ""
printf "是否立即为域名配置SSL证书？(y/N): "

# 尝试从终端读取输入
if [ -t 0 ]; then
    # 标准输入是终端
    read REPLY
else
    # 标准输入被重定向，从/dev/tty读取
    if [ -e /dev/tty ]; then
        read REPLY </dev/tty
    else
        # 如果无法访问终端，默认为No
        REPLY="N"
        echo "N (默认选择，无法访问终端)"
    fi
fi

echo ""
if [ "$REPLY" = "y" ] || [ "$REPLY" = "Y" ]; then
    # 先获取域名
    echo ""
    printf "请输入要配置SSL证书的域名: "
    
    # 处理管道输入问题
    if [ -t 0 ]; then
        read DOMAIN
    else
        if [ -e /dev/tty ]; then
            read DOMAIN </dev/tty
        else
            DOMAIN=""
            echo "无法获取输入"
        fi
    fi
    
    if [ -z "$DOMAIN" ]; then
        echo -e "${RED}[ERROR]${NC} 域名不能为空"
        exit 1
    fi
    
    echo -e "${BLUE}[INFO]${NC} 将为域名 $DOMAIN 配置SSL证书"
    
    # 检测环境并运行
    if [ -d "/www/server/panel" ] && [ -f "/etc/init.d/bt" ]; then
        echo -e "${BLUE}[INFO]${NC} 检测到宝塔面板，启动宝塔模式..."
        # 优先使用CLI工具，否则使用完整路径
        if [ -f "/usr/local/bin/auto-ssl" ]; then
            # CLI工具暂时不支持域名参数，使用完整路径
            echo -e "${YELLOW}[INFO]${NC} 使用完整路径模式（传递域名参数）"
            python3 /usr/local/bin/auto_ssl_universal.py --mode baota --domain "$DOMAIN"
        else
            echo -e "${YELLOW}[INFO]${NC} 使用完整路径模式"
            python3 /usr/local/bin/auto_ssl_universal.py --mode baota --domain "$DOMAIN"
        fi
    else
        echo -e "${BLUE}[INFO]${NC} 启动通用模式..."
        # 优先使用CLI工具，否则使用完整路径
        if [ -f "/usr/local/bin/auto-ssl" ]; then
            # CLI工具暂时不支持域名参数，使用完整路径
            echo -e "${YELLOW}[INFO]${NC} 使用完整路径模式（传递域名参数）"
            python3 /usr/local/bin/auto_ssl_universal.py --mode generic --domain "$DOMAIN"
        else
            echo -e "${YELLOW}[INFO]${NC} 使用完整路径模式"
            python3 /usr/local/bin/auto_ssl_universal.py --mode generic --domain "$DOMAIN"
        fi
    fi
else
    echo -e "${YELLOW}[INFO]${NC} 您可以随时配置SSL证书："
    if [ -f "/usr/local/bin/auto-ssl" ]; then
        echo -e "${YELLOW}[INFO]${NC}   CLI工具: 'auto-ssl' 或 'auto-ssl bt'"
    fi
    echo -e "${YELLOW}[INFO]${NC}   完整路径: 'python3 /usr/local/bin/auto_ssl_universal.py --mode generic/baota'"
fi
